// 引入mysql模块 相对路径
var sql = require('../mysql/config');

// 加密模块
var crypto = require('crypto');

// 引入自定义加密模块
var { input } = require('../until/crypto');

// 登录请求处理中间件
async  function login(req,res){
    // 获取前端传递的登录信息
    var username = req.body.username;
    var password = req.body.password;
    var users  = await sql(`select * from user where username = "${username}"`); // [{}]

    // 定义密钥  加密
    // var secret = 'hellom';
    // var newPassword = crypto
    //     .createHmac('sha256',secret)
    //     .update(password,'utf-8')
    //     .digest('hex');

    if (users.length === 0) {
        res.send({
            code:500,
            msg:"登录失败,请前去注册！"
        });
    }else{
        console.log("解密: "+input(users[0].password));
        if ( input(users[0].password) === password ) {
            // 在服务端保存用户的登录信息 -- 登录用户验证
            req.session.user = users[0]; // {username:,password,nickname:avatar}
            // 响应前端
            res.send({
                code:200,
                msg:"登录成功",
                user:{ username:users[0].username,nickname:users[0].nickname }
            });
        }else{
            res.send({
                code:500,
                msg:"密码错误"
            });
        }         
    }

    // var userObj = users.find(item=>{
    //     return item.username === username;
    // })
    // console.log(userObj+" es6 find方法");  // 如果find没有查询到数据，返回undefined
    // if( userObj ){
    //     if ( userObj.password === newPassword) {
    //         res.send({
    //             code:200,
    //             msg:"登录成功"
    //         });
    //     }else{
    //         res.send({
    //             code:500,
    //             msg:"密码错误"
    //         });
    //     } 
    // }else{
    //     res.send({
    //         code:500,
    //         msg:"登录失败,请前去注册！"
    //     }); 
    // }
}

module.exports = login;